package com.qunar.wan.common_api.service;

import com.qunar.wan.common_api.model.AdminLog;
import com.qunar.wan.common_api.service.mapper.AdminLogMapper;
import com.qunar.wan.common_api.serializer.RowBounds;

import java.util.List;

/**
 * User: hangyu.shen Date: 13-11-26 Time: 上午11:16
 */
public interface AdminLogService extends BaseService<AdminLog, AdminLogMapper> {
    /**
     * 根据管理员的id查找其相关日志信息并分页
     */
    List<AdminLog> selectListByUserId(int userId, RowBounds rowBounds);

    /**
     * 根据管理员日志时间信息查找管理员日志信息（显示大于某年月日的信息）
     *
     * @param actionTime 允许的日期格式有20131106, 2013-11-6, 2013.11.6, 13-11-6, 13.11.6, 131106, 13116 不允许的日期格式有 2013116，
     *                   1106等
     * @param adminId    管理员Id
     */
    List<AdminLog> selectListByDate(String actionTime, int adminId, RowBounds rowBounds);

    /**
     * 根据相关请求传入的参数插入管理员日志
     *
     * @param adminId 操作管理员Id
     * @param action  管理员的操作信息
     */
    void insertAdminLog(int adminId, String action);

    /**
     * 根据用户名id获取管理员记录条数
     *
     * @param adminId 管理员id
     * @return
     */
    int getAdminLogCountByUserId(int adminId, String actionTime);

    /**
     * 在user表中曾删管理员并在管理员日志中插入日志（事务）
     *
     * @param supAdminId 登陆的超级管理员id
     * @param adminId    需增加或删除的管理员id
     * @param flag       判断增加或删除的标记
     * @return 返回msg，用于在页面中显示
     */
    String deleteOrAddAdminTran(int supAdminId, int adminId, int flag);
}
